<?php
//date格式化一个本地时间／日期
//格式字符串：(1)普通字符原样显示(2)特殊字符，有特定的含义
echo date("北京时间：Y年m月d日 H:i:s.v e\n");
//通过构造方法创建DateTime对象
$d=new DateTime(); //创建一个日期对象, 默认值"now"表示当前的日期时间
$d=new DateTime("2000-10"); //2000-10-01 00:00:00.000000
$d=new DateTime("2000-10-5"); //2000-10-05 00:00:00.000000
$d=new DateTime("2000-10 12:34:56"); //2000-10-01 12:34:56.000000
$d=new DateTime("2000-10 12:34"); //2000-10-01 12:34:00.000000
$d=new DateTime("12:34"); //今天日期的 2025-10-29 12:34:00.000000
$d=new DateTime("20001005 123456"); //2000-10-05 12:34:56.000000
$d=new DateTime("2000/10/1 12:34:56"); //必须有日 2000-10-01 12:34:56.000000
print_r($d);
//日期的格式化输出，访问对象的属性或方法用->而不是=>
echo $d->format("Y-m-d H:i:s.v e\n"); //2000-10-01 12:34:56.000 Asia/Shanghai
echo $d->format("年：Y\n"); //年：2000
$a=['name'=>'zs', 'age'=>18];
//获取UNIX时间戳,从UTC 1970-1-1 0时到现在的秒数
$d=new DateTime("1970-1-1 8:0", new DateTimeZone('Asia/Shanghai'));
echo "UNIX时间戳：",$d->getTimestamp(),"\n";
//根据时间戳创建日期，注意时间戳前面一定要加@
echo (new DateTime("@1761723189"))->format("Y-m-d H:i:s.v e\n"); //2025-10-29 07:33:09.000 +00:00
//设置时区，可以看北京时间对应的不同地区的时间
$d=new DateTime();
echo $d->format("Y-m-d H:i:s.v e\n");
$d->setTimezone(new DateTimeZone("UTC")); //2025-10-29 15:50:18.551 Asia/Shanghai
echo $d->format("Y-m-d H:i:s.v e\n"); //2025-10-29 07:50:18.551 UTC